今天來了解並實用Docker hub。Docker Hub可以說是Docker界的github,能夠輕鬆分享或是取得他人分享的container image,Dockerfile內的FROM取用的image就是來自此。Docker Hub還可以做為團隊合作的用途,可以選擇公開者以及許多有用的功能。
來試著將bulletin放上Docker hub吧。
1.要使用Docker hub第一步當然要先註冊帳號拉,快去辦一個吧Docker Hub連結。
2.註冊且登入帳號後找到首頁的Create Repository點擊來產生一個新的庫,接下來就是填寫這個庫的名稱以及公開不公開的設定,就可以create了。
在建立的時候右邊還有提示我們怎麼Push我們的APP到Repository呢。
3.建立好庫之後,該怎麼把我們的APP Push上去呢,跟著右側的提示做吧,透過tag以及push就可以了
$ docker tag local-image:tagname new-repo:tagname
$ docker push new-repo:tagname
那我們要推的是bulletin的APP所以就先改成
$ docker tag bulletinboard:1.0 tubebigbig/bulletinboard:1.0
$ docker push tubebigbig/bulletinboard:1.0
怎麼無法執行呢,該不會哪裡搞錯了吧?其實是因為還沒登入拉
可以透過Docker desktop的dashboard來登入,也可以透過指令docker login
來登入。
登入完再執行一次,就可以摟!!
這時候再來看我們剛剛建立的Docker hub Repository是不是多了1.0的tag了呢
之後要使用我們的APP只要透過docker pull
就可以直接從Docker hub拉下來了,整個就方便了許多呢。
接下來肯定會想知道,如果要更新的時候怎麼辦呢,是不是每次都要設定tag再push上去呢?這樣的確是可以,但是一般都會有git來做版控,等於每次都要跟git分開推實在是很麻煩呢。
別擔心,Docker hub跟github還有bitBucket早就做好連接摟,只要配置好設定跟連結,那我們每次在push github或是bitBucket的commit時就可以auto build了。
那該怎麼設置auto build呢?
其實在我們Create Repository時的最下面就可以設置了呢,那已經建立的Repository則是要進入我們的Repository再點擊叫做builds的tab就可以看到了,第一次使用的話就需要我們先授權github或是bitBucket帳號。
授權完github或是bitBucket帳號之後,就可以來建立我們的autobuild功能了,再回到剛剛的builds tab並選擇要建立autobuilds的平台,接下來就可以配置包誇APP在平台內的Repository位置,以及自動測試、建置規則、環境參數等。
來說明建置規則的部分,我們可以配置auto builds的規則,如下圖由左至右則是
release-{sourceref}
/
也就是根目錄,可以自行設定到對應Dockerfile的路徑設定好之後就可以點選save,或是save and build直接建立。
建立好之後就會看到觀察auto build的儀表板,具有Build Activity(建立的歷程圖)、Automated Builds(建立的當前狀態,可以在此使用trigger手動建立)以及Recent Builds(最近的建置用條列式來表示)。
接著我們就可以試著去修改我們的APP並且提交commit點到github或是bitBucket,再回來看我們的builds頁面,可以看到偵測到提交後正在自動建置。
成功後
這時候再去tag頁面就可以看到我們更新成功的image。
之後每次只要提交寫好的code到版控平台就可以自動同步建置到Docker hub了。
下圖具有,in progress、success、cancel、fail等狀態
Build Activity的畫面
參考文獻:
docker官方文件